package collector.task;

import org.quartz.Job;
import org.quartz.JobKey;

import net.apexcns.core.BaseVO;

/**
 * <pre>
 *  Quartz의 작업에 대한 객체
 *  작업명, 작업그룹으로 구성되며 생성된 작업키를 할당 가능함.
 * <br>
 * collector.task.JobVO Class / JobVO.java
 * </pre>
 * @author ytjeong / apexcns,Inc.
 * @version 1.0
 * @see javadoc
 * @since 2012. 9. 12.
 */
@SuppressWarnings("serial")
public class JobVO extends BaseVO {

    protected String jobName	= null;
    protected String jobGroup	= null;
    protected Class <? extends Job> jobClass	= null;

    protected JobKey jobKey 	= null; // Optional

    /**
     * <pre>
     *
     * @param jobName
     * @param jobGroup
     * @param jobClass
     * <br>
     * </pre>
     */
    public JobVO(String jobName, String jobGroup, Class<? extends Job> jobClass) {
	super();
	this.jobName = jobName;
	this.jobGroup = jobGroup;
	this.jobClass = jobClass;
    }

    /** <pre>
     * Method : JobVO.getJobName
     * 	to get jobName
     * <br> 
     * @return the jobName : type of String
     * </pre>
     */
    public String getJobName() {
        return jobName;
    }

    /** <pre>
     * Method : JobVO.setJobName
     * 	to set jobName 
     * <br> 
     * @param jobName : type of String
     * </pre>
     */
    public void setJobName(String jobName) {
        this.jobName = jobName;
    }

    /** <pre>
     * Method : JobVO.getJobGroup
     * 	to get jobGroup
     * <br> 
     * @return the jobGroup : type of String
     * </pre>
     */
    public String getJobGroup() {
        return jobGroup;
    }

    /** <pre>
     * Method : JobVO.setJobGroup
     * 	to set jobGroup 
     * <br> 
     * @param jobGroup : type of String
     * </pre>
     */
    public void setJobGroup(String jobGroup) {
        this.jobGroup = jobGroup;
    }

    /** <pre>
     * Method : JobVO.getJobClass
     * 	to get jobClass
     * <br> 
     * @return the jobClass : type of Class<? extends Job>
     * </pre>
     */
    public Class<? extends Job> getJobClass() {
        return jobClass;
    }

    /** <pre>
     * Method : JobVO.setJobClass
     * 	to set jobClass 
     * <br> 
     * @param jobClass : type of Class<? extends Job>
     * </pre>
     */
    public void setJobClass(Class<? extends Job> jobClass) {
        this.jobClass = jobClass;
    }

    /** <pre>
     * Method : JobVO.getJobKey
     * 	to get jobKey
     * <br> 
     * @return the jobKey : type of JobKey
     * </pre>
     */
    public JobKey getJobKey() {
        return jobKey;
    }

    /** <pre>
     * Method : JobVO.setJobKey
     * 	to set jobKey 
     * <br> 
     * @param jobKey : type of JobKey
     * </pre>
     */
    public void setJobKey(JobKey jobKey) {
        this.jobKey = jobKey;
    }

    /* (non-Javadoc)
     * @see java.lang.Object#toString() 
     * 
     * Method : collector.task.JobVO.toString
     */
    @Override
    public String toString() {
	StringBuilder builder = new StringBuilder();
	builder.append("JobVO [jobName=");
	builder.append(jobName);
	builder.append(", jobGroup=");
	builder.append(jobGroup);
	builder.append(", jobClass=");
	builder.append(jobClass);
	builder.append(", jobKey=");
	builder.append(jobKey);
	builder.append("]");
	return builder.toString();
    }

    
}
